package org.inspiration.dudu.web.service.common;

import org.inspiration.dudu.user.model.dto.UserDTO;
import org.springframework.http.ResponseEntity;
import org.springframework.web.multipart.MultipartFile;

import java.util.Map;

public interface CommonFacadeService {
    /**
     * 用户登录
     * @param userDTO 用户数据传输对象
     * @return 登录成功后返回的 token
     */
    String login(UserDTO userDTO);

    /**
     * 用户注册
     * @param userDTO 用户数据传输对象
     * @throws IllegalArgumentException 如果用户数据无效
     */
    void register(UserDTO userDTO);

    /**
     * 上传图片
     * @param file 上传的文件
     * @return 返回包含图片信息的 Map，包括文件名和文件大小等信息
     * @throws IllegalArgumentException 如果上传的文件无效
     */
    Map<String, Object> uploadImage(MultipartFile file);

    /**
     * 下载图片
     * @param filename 图片文件名
     * @return 返回图片的字节数组
     * @throws FileNotFoundException 如果文件未找到
     */
    ResponseEntity<byte[]> downloadImage(String filename);
}
